package challenge;

import java.io.*;

public class ArrayString {
	
	/**Stringの分割メソッド
	 * 入力されたStringを半角スペースで区切り、配列として返す
	 * @param in　入力するString
	 * @return　分けられた配列
	 */
	public static String[] toArray(String in){
		int check=0;
		int number = in.length();
		while(number>=0){
			number = in.lastIndexOf(" ", number-1);
			check++;
		}
		number = 0;
		String[] st = new String[check];
		for(int i=0;i<check-1;i++){
			st[i]=in.substring(number,in.indexOf(" ",number));
			number = in.indexOf(" ",number)+1;
		}
		st[check-1]=in.substring(number,in.length());
		return st;
	}
	
	/**Stringの分割メソッド
	 * 入力されたStringを入力されたワードで区切られた配列として返す
	 * @param in　入力するString
	 * @param cut　区切り文字
	 * @return　分けられた配列
	 */
	public static String[] toArray(String in,String cut){
		int check=0;
		int number = in.length();
		while(number>=0){
			number = in.lastIndexOf(cut, number-1);
			check++;
		}
		number = 0;
		String[] st = new String[check];
		for(int i=0;i<check-1;i++){
			st[i]=in.substring(number,in.indexOf(cut,number));
			number = in.indexOf(cut,number)+1;
		}
		st[check-1]=in.substring(number,in.length());
		return st;
	}
	
	/**入力用メソッド
	 * 入力された値をそのままStringとして返す
	 * @return
	 */
	public static String[] inputToArray(){
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		try{
			String line = br.readLine();
			return toArray(line);
		}catch(IOException e){
			System.out.println(e);
		}catch(NumberFormatException e){
			System.out.println(e);
		}catch(StringIndexOutOfBoundsException e){
			System.out.println(e);
		}
		return null;
	}
	
	/**配列のString→int変換
	 * 入力された半角数字のみでできたStringの配列をintの配列に直す
	 * @param args　半角数字のみでできたStringの配列
	 * @return　intの配列
	 */
	public static int[] arrayToNumber(String[] args){
		try{
			int[] value = new int[args.length];
			for(int i=0;i<args.length;i++){
				value[i] = (new Integer(args[i])).intValue();
			}
			return value;
		}catch(NumberFormatException e){
			System.out.println("数字を入力してください");
		}
		int[] miss = {-1};
		return miss;
	}
	
}
